// 封装一个Vue构造函数
function Vue(options) {
    this._data = options.data

    // 数据代理,把_data中的属性取出来，放在vue实例上
    for (let key of Object.keys(this._data)) {
        Object.defineProperty(this, key, {
          get() {
            return this._data[key];
          },
          set(newVal) {
            this._data[key] = newVal;
          },
        });
      }
}

// 实例化Vue
const vm = new Vue({
    data: {
        name: 'laowang',
        course: {
            type: 'easy',
            name: 'html'
        }
    }
})

console.log(vm)